home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Present…nuary (Partner) - Disc 1 / The Apple Reference and Presentations Library (Disc 1)(January 1994).iso / Snow / US English / Atlantis / Atlantis™ Data-68K / Atlantis™ Data Publisher / Atlantis™ Data Publisher.rsrc / HLP_133_RW 6 < prev    next >
Text File  |  1994-03-30  |  33KB  |  542 lines

  1. symbol.  The match is between the the first field (left side of arrow) and the key of the looked up file as defined by the size of key and location of key at Define Files and Fields.  The key field does not print on the report.
  2.  
  3.      The field on the right side of the symbol is the field that you actually want to print on your report.  It does not have to be the key field.  It can be any field in the looked-up file.
  4.  
  5.      The [n] is to be replaced by the key number, as defined on the first screen of Define Files and Fields.  The primary key is [1].  Alternate keys are from [2] through [6].  If you enter a [0], [1] or no number, then the program will default to the primary key field.
  6.  
  7.      Example:  account customer no -> customer name.key[1]
  8.  
  9.      In the above example, the customer no in the accounts file matches up with the customer number (the primary key) of the customer file.  Then the customer names are found and printed.
  10.  
  11. * Section *
  12. 18.2.2  File Relationships Used for Keyed-Read Lookup
  13.  
  14.      The keyed read look-up can be used with either of the two file relationships shown below.  Also note that a keyed read look-up can be done within a file, as outlined in the immediately following section.
  15.  
  16. Two Files that have a One-to-One Relationship
  17. 
  18.  _____________________________     ____________________________________
  19. |                             |   |                                    |
  20. |        ACCOUNT.DAT          |   |            CUSFIL.DAT              |
  21. |                             |   |                                    |
  22. |   account customer no ------------->customer no                      |
  23. |   account customer name     |   |   customer name                    |
  24. |   account credit limit      |   |   customer address                 |
  25. |   account credit rating     |   |   customer street address 1        |
  26. |   account type              |   |   customer street address 2        |
  27. |   account billing date      |   |   customer city                    |
  28. |_____________________________|   |   customer state                   |
  29.                                   |   customer zip code                |
  30.                                   |   customer person to contact       |
  31.                                   |   customer customer salesman       |
  32.                                   |____________________________________|
  33. 
  34. (One account information record for each customer information record).
  35.  
  36.      Example:  account customer no -> customer name
  37.  
  38. or Two Files that have a Many-To-One Relationship
  39.          Detail File                           Header File
  40.  _________________________________     ________________________________ 
  41. |                                 |   |                                |
  42. |        COMFIL.DAT               |   |        SLMFIL.DAT              |
  43. |                                 |   |                                |
  44. |   commissions salesman no---------------->salesman no                |
  45. |   commissions customer no       |   |     salesman name              |
  46. |   commissions document no       |   |________________________________|
  47. |   commissions document type     | |   commissions document date     |   
  48. |   commissions amount due        |   
  49. |_________________________________|
  50. 
  51. (Many commission records for each salesman)
  52.  
  53.      Example:  commissions salesman no -> salesman name
  54.  
  55. * Section *
  56. 18.2.3  Performing a Look-up Within One File
  57.  
  58.      It is possible to perform a look-up from one type of record in a file to another type of record in that same file.  This may be necessary if you have one master file which includes all of your data, regardless of data type (e.g. accounts receivable, customer data, transactions, etc.)  In this type of file, you would most likely have a field which identifies the type of record.  This field may be something like record type, and possible values could be CUS for customer records, GLA for general ledger accounts, etc.  Then each different record type would have its own fields and field sizes (not necessarily the same as other record types).  Because of these varying field types and locations, you would need to specify a different file definition for each of these types of records, and the fields related to that record type.
  59.  
  60.      The reason why it is necessary to perform a look-up even though all of these fields are in the same file, is that for use with Report Writer, these are different 'files'.  You could not simply define the file as one large file, because the different fields in the different records types usually have different starting and ending locations and field types.
  61.  
  62.      When defining the different 'files', use the following guidelines:
  63.  
  64.           The Data File Name can be whatever you want to call that record type.  
  65.  
  66.           The Name of File on Disk would be the same on each of these definitions.  This would be the actual name of the file on disk.
  67.  
  68.           The Size of Record may vary on each of these file definitions.
  69.  
  70.           The Primary and Alternate Keys (size and location of) may also vary from one record type to the next.  
  71.  
  72.           The Field Separator Value and Location of Delete Flag can usually be left blank, unless the record has a delete flag which you want to use.
  73.  
  74.           The Start of Data Location and End of Data Location may vary for each of these file definitions.  These two selections can be used to define the beginning and end of each section of the master file.  Refer to Chapter 11 of this Reference Manual, Defining Files and Fields, at Start of Data Location for details.  (Alternatively, use a Selection Criteria to split the file, as described below.)
  75.  
  76.           It is suggested that you enter Y at Keep Index Permanent.
  77.  
  78.      After defining each type of record as a file, then you must define any fields of each of the respective record types that you want to access with Report Writer.  Define a record type's fields immediately after defining that record type as a file (second screen of Define Files and Fields).  Use the standard field definition guidelines when defining the fields.  Be sure to use a different field name for each field defined (even from one record type to the next).   You may want to include the record type (or portion thereof) as part of the field name, to help differentiate different fields.
  79.  
  80.      You must also define the field which contains the record type.  These must also have different field names, one for each record type (e.g. cus record type, transaction record type, etc.)
  81.  
  82.      Once these files and fields are defined, you can perform a look-up from one record type to another record type, within that same file.  The lookup field must still match the key field of file (record type) being looked up.  For example, the customer account numbers in the customer records can match the account numbers in the transaction records.  So you could use the customer number to look up transaction records data.
  83.  
  84.           Example:  customer no -> transaction no
  85.  
  86.      When performing the Query/Report, you must specify selection criteria to include only those records which are being used as your 'primary' data file.  For example, if the customer-type records are being used as your primary data file, then your selection criteria would say something like this:
  87.  
  88.           Example:  record type = "CUS"
  89.  
  90.      (OR Use Start of Data Loc/End of Data described above.)
  91.  
  92. * Section *
  93. 18.2.4  Concatenated Key Fields
  94.  
  95.      When performing a keyed read look-up, if the data which matches the key field of the file being looked up contains more than one field, you can combine these fields when specifying a lookup.  This creates a concatenated field.  It must be enclosed in parentheses.
  96.  
  97.      Example:  (record type, code) -> tax code description
  98.  
  99. 
  100.            File 1                               File 2
  101.  ______________________________     _________________________________
  102. |                              |   |                                 |
  103. |        CUSFIL.DAT            |   |         ARCODS.DAT              |
  104. |                              |   |                                 |
  105. |  record type    code         |   |  tax code    description        |
  106. |                              |   |                                 |
  107. |      X          FLA          |   |   XFLA      Florida tax         |
  108. |      X          NEW          |   |   XNEW      New York tax        |
  109. |      X          FED          |   |   XFED      Federal tax         |
  110. |      X          EXC          |   |   XEXC      Excise tax          |
  111. |      X          IMP          |   |   XIMP      Import tax          |
  112. |______________________________|   |_________________________________|
  113.  
  114. 
  115.                                                
  116.      The key field of the looked-up file (File 2), the tax code, is a combination of both the record type and the code in File 1 (although the actual field name will vary from File 1's field names).
  117.  
  118.      The file definition of File 2, containing the tax code, specifies the size of key as being the full length of the fields containing the record types and codes.  The start location of the key is the start location of the record type field.
  119.  
  120. * Section *
  121. 18.2.5  Using Literals in a Concatenated Key
  122.  
  123.      You may have a situation where you don't have a field in the first file which matches part of the key of the looked-up file.  If this key is a constant in the looked-up file, then you can use a literal to help create the concatenated lookup field in the primary data file which will match the key to the looked-up file.  The literal would then be part of the field.
  124.  
  125.      Example:  ("X",customer tax code) -> tax code description
  126. 
  127.  ______________________________     _________________________________
  128. |                              |   |                                 |
  129. |        CUSFIL.DAT            |   |         ARCODS.DAT              |
  130. |                              |   |                                 |
  131. |    customer tax code         |   | code  code    description       |
  132. |                              |   | type                            |
  133. |           FLA                |   |  X    FLA    Florida Tax        |
  134. |           NEW                |   |  X    NEW    New York Tax       |
  135. |           EXC                |   |  X    EXC    Excise Tax         |
  136. |           IMP                |   |  X    IMP    Import Tax         |
  137. |______________________________|   |_________________________________|
  138.  
  139. 
  140. In the above example, the code type is one of the following:
  141. 
  142.      X = tax code
  143.      S = shipping code
  144.      T = terms code
  145. 
  146.      For the look-up specification, the X's (indicating the codes are tax codes) are combined with the customer tax code, to match the key of the file which contains the codes descriptions.
  147.  
  148. * Section *
  149. 18.3  One-to-Many Keyed Read
  150.  
  151.      This type of look-up is similar to the keyed read look-up, except that the looked-up file may contain many records per each record of the primary file (thus, one-to-many).  
  152.  
  153.      One-to-many look-up specifications will automatically create a level break.  Therefore, do not specify a level break manually when specifying a one-to-many look-up specification.  
  154.  
  155.      Also note, when using subtotal levels and line types on your design, the level break created by a one-to-many look-up counts as a level break, even though not actually selected through the windows.  
  156.  
  157.      If additional level breaks are needed, they can be added before (but not after) a one-to-many look-up specification.
  158.  
  159. * Section *
  160. 18.3.1  One to Many Keyed Read Specification
  161.  
  162.      The one-to-many lookup is also done through the use of a key field.  Following is the format for a One-to-Many Keyed Read lookup specification.  Note that the symbol is now +>.
  163.  
  164. 
  165.    Lookup Field          +>   Looked up Field       .key[n]    
  166.   (Matches key field         (Field to include      (Number of key
  167.    of looked up file)         in Report              being used)
  168. 
  169.  
  170.      The field which matches the key field is on the left side of the symbol.  The match is between the the first field (left side of arrow) and the key of the looked up file as defined by the size of key and location of key at Define Files to be Queried.  The key field does not print on the report.
  171.  
  172.      The field on the right side of the symbol is the field that you actually want to print on your report.  It does not have to be the key field.  It can be any field in the looked-up file.
  173.  
  174.      The [n] is to be replaced by the key number, as defined on the Define Files to be Queried screen.  The primary key is [1].  Alternate keys are from [2] through [6].  If you enter a [0], [1] or no number, then the program will default to the primary key field.
  175.  
  176.           Example:  customer account no +> invoice no.key[2]
  177.  
  178.      In the above example, the account number in the customer file matches up with the customer number (the second key) of the invoices file.  Then the invoice numbers are found and printed.
  179.  
  180.      It is recommended that you specify the key field first (separately).  Otherwise you will get the second file's detail lines only.  It is also recommended that you sort the report by this key field.
  181.  
  182.      Example design selections:
  183. 
  184.      Sorted by:                         customer account no
  185.  
  186.      Choose fields                      customer account no
  187.         NO level break set
  188.  
  189.      Choose fields
  190.         Field from another file         customer account no +> 
  191.         NO level break set              invoice no.key[2]
  192. 
  193.        File 1 - CUSTOMER.DAT          File 2 - INVOICE.DAT
  194.       _________________________     __________________________  
  195.      |                         |   |                          |
  196.      |                         |   |                          |
  197.      |  customer account no -----------+>   invoice no        |
  198.      |                         |   |        invoice no        |
  199.      |                         |   |        invoice no        |
  200.      |                         |   |                          |
  201.      |  customer account no -----------+>   invoice no        |
  202.      |                         |   |        invoice no        |
  203.      |                         |   |        invoice no        |
  204.      |_________________________|   |__________________________|
  205. 
  206. The report may appear as follows:
  207. 
  208.      Customer Acct No                Invoice No's
  209.         1000-000                       2220000
  210.                                        2220005
  211.                                        2220010
  212.                                        2220011
  213.  
  214.         2000-000                       2220001
  215.                                        2220003
  216.                                        2220006
  217. 
  218. Note that when specifying a one-to-many keyed read look-up, the two files must have a one-to-many relationship.  
  219.  
  220. Here is an example:
  221. 
  222.            Header File                           Detail File
  223.        (Primary Data File)                     (Looked up File)
  224.  __________________________________    _________________________________
  225. |                                  |  |                                 |
  226. |          CUSFIL.DAT              |  |          AROPEN.DAT             |
  227. |                                  |  |                                 |
  228. |   customer no ------------------------+> aropen customer no           |
  229. |   customer name                  |  |    aropen document date         |
  230. |   customer address               |  |    aropen document no           |
  231. |   customer street address 1      |  |    aropen document type         |
  232. |   customer street address 2      |  |    aropen apply to no           |
  233. |   customer city                  |  |    aropen customer no alt       |
  234. |   customer state                 |  |    aropen item due date         |
  235. |   customer zip code              |  |    aropen amount one            |
  236. |   customer person to contact     |  |    aropen amount two            |
  237. |   customer phone number          |  |                                 |
  238. |   customer customer salesman     |  |                                 |
  239. |__________________________________|  |_________________________________| 
  240.  
  241.      In the preceding example, you have one customer in 
  242.      CUSFIL.DAT to many aropen documents in AROPEN.DAT.  
  243.      The sort field should be customer no.  An automatic level 
  244.      break will be created for each new customer number.
  245.  
  246.      Example:  customer no +> aropen document no.key[1]
  247.  
  248.      The above specification will give you all of the aropen document 
  249.      numbers (from AROPEN.DAT) for each of the customers.  The 
  250.      AROPEN document numbers will be sorted by customer number.
  251.  
  252. * Section *
  253. 18.3.2  Concatenated Key Fields
  254.  
  255.      If the key to the file being looked up contains more than one field, you can also combine the matching fields of the first file when specifying the look-up.  This creates a concatenated key.  This type of key must be enclosed in parentheses.  
  256.  
  257.      Example:
  258. 
  259.      Sorted by:                         customer state 
  260.      Choose fields:                     customer state, zip code
  261.  
  262.      Next choose fields:                (custoner state, zip code) +>
  263.                                         customer name
  264. 
  265. 
  266.           File 1                              File 2
  267.  ______________________________     _________________________________
  268. |                              |   |                                 |
  269. |        ACCOUNT.DAT           |   |         CUSFIL.DAT              |
  270. |                              |   |                                 |
  271. |   cus state      zip code    |   |  location   customer name       |
  272. |                              |   |   ...                           |
  273. |      FL            33333     |   |   FL33333   Adams               |
  274. |      GA            34301     |   |   FL33333   Bauer               |
  275. |      MO            55555     |   |   FL33333   Connors             |
  276. |      TN            44444     |   |   FL33333   Davidson            |
  277. |      WY            56666     |   |   GA34301   Daniels             |
  278. |______________________________|   |_________________________________|
  279. 
  280.      The key to File 2 is a combination of both the customer state and zip code.  In the above example, the report would print all customers sorted by customer state.
  281.  
  282.      In the above example, the file definition of the looked-up file (containing the field named location) specifies the size of key as being the full length of the fields containing the states and zip codes.  The start location of key in record is the first byte position of the field named location in File 2.
  283.  
  284. * Section *
  285. 18.3.3  Using Literals in a Concatenated Key
  286.  
  287.      You may have a situation where you don't have a field in the first file (report sequence file) which matches part of the key of the looked-up file.  If this key is a constant in the looked up file, then you can use a literal to help create the lookup field in the report sequence file which will match the key of the looked up file.
  288.  
  289.      Example:  ("X","FLA") +> customer name 
  290. 
  291.  ______________________________     _________________________________
  292. |                              |   |                                 |
  293. |        ARCODS.DAT            |   |         CUSFIL.DAT              |
  294. |                              |   |                                 |
  295. |   record type     state      |   |    code     customer name       |
  296. |                              |   |                                 |
  297. |        X           FLA       |   |    XFLA     Adams               |
  298. |        X           NEW       |   |    XNEW     Bauer               |
  299. |        S           UPS       |   |    XFLA     Connors             |
  300. |        T           COD       |   |    TPRE     Davidson            |
  301. |        T           PRE       |   |    XFLA     Erickson            |
  302. |______________________________|   |_________________________________|
  303.  
  304. 
  305.      The key of the looked up file (the file containing the field code) is a combination of both the record type and the state of the first file.  In the above example, the report would print all customers from CUSFIL.DAT whose have the code of XFLA.
  306.  
  307.      In the above example, the code type is one of the following:
  308. 
  309.                X = tax code
  310.                S  = shipping code
  311.                T = terms code
  312. 
  313.      For the look-up specification, the X's (indicating the codes are tax codes) are combined with the customer tax code, to match the key to the file which contains the codes descriptions:
  314.  
  315.                X , FLA = XFLA (Key to Codes description)
  316.  
  317. * Section *
  318. 18.3.4  Two One-to-Many Look-ups in One Report
  319.  
  320.      It is possible to have more than one one-to-many look-up specification within the same report.  The layout of the report will depend on which files are used for the second one-to-many specification.
  321.  
  322.      Field 1 +> Field 2, ... Field 3 +> Field 4
  323.  
  324.      In the above example, field 1 and field 3 can be in different files.  Here is an example:
  325.  
  326. 
  327.   File 1 CUSTOMER.DAT        File 2  ACCOUNT.DAT        File 3  INVOICE.DAT
  328.  _____________________     _______________________     _______________________
  329. |                     |   |                       |   |                       |
  330. |  Field 1            |   |   Field 2             |   |                       |
  331. |  Customer No -------------+>Invoice Date        |   |                       |
  332. |                     |   |                       |   |                       |
  333. |                     |   |             Field 3   |   |   Field 4             |
  334. |                     |   |             Invoice No------+>Invoice Line Item   |
  335. |                     |   |                       |   |   Invoice Line Item   |
  336. |                     |   |   Invoice Date        |   |                       |
  337. |                     |   |             Invoice No-----+> Invoice Line Item   |
  338. |                     |   |                       |   |   Invoice Line Item   |
  339. |                     |   |                       |   |   Invoice Line Item   |
  340. |                     |   |   Invoice Date        |   |                       |
  341. |                     |   |             Invoice No-----+> Invoice Line Item   |
  342. |                     |   |                       |   |   Invoice Line Item   |
  343. |                     |   |                       |   |   Invoice Line Item   |
  344. |  Customer No ------------+> Invoice Date        |   |                       |
  345. |                     |   |             Invoice No ----+> Invoice Line Item   |
  346. |                     |   |                       |   |   Invoice Line Item   |
  347. |                     |   |   Invoice Date        |   |                       |
  348. |                     |   |             Invoice No ----+> Invoice Line Item   |
  349. |                     |   |                       |   |   Invoice Line Item   |
  350. |_____________________|   |_______________________|   |_______________________|
  351.  
  352. In the above look-up, the Customer No (customer.dat) is matched with the Customer Account No (account.dat).  The file key is located through the location of key in record and size of key which was defined at Define Files and Fields.  Then the Invoice Dates for each account are located and printed.  
  353.  
  354.      In the second look-up specification, the Invoice No (account.dat) is matched with the Invoice No (in invoice.dat).  Then the invoice line items for each invoice number are printed on the report.
  355.  
  356.      Since each one-to-many specification automatically creates a level break, two level breaks are effected by the above look-up.  The first level break is at the customer number, and the second level break is at the invoice number.
  357.  
  358.      The invoice dates and invoice line items are the fields that will print per the above specification (fields on right side of symbol).  There will be two nested levels, with all of the invoice line items printing a level below the invoice dates.  It is recommended that you also specify the customer no and invoice number separately to show a full report.  The report may appear as follows:
  359.  
  360. 
  361. 1st Level Break                   2nd Level Break
  362.  
  363.    Customer No   Invoice Date      Invoice Number     Line Item
  364.  
  365.    1000-000        01/01/99         000000100        Description
  366.                                                      Description 
  367.                                                      -----------
  368.                                                      Sub-total 1       
  369.  
  370.                    02/04/99         000000200        Description
  371.                                                      Description
  372.                                                      Description
  373.                                                      -----------
  374.                                                      Sub-total 1
  375.  
  376.                    03/01/99         000000300        Description
  377.                                                      Description
  378.                                                      Description
  379.                                                      -----------
  380.                                                      Sub-total 1
  381.                                                                 Sub-total 2       
  382.    2000-000        01/05/99         000000400        Description
  383.                                                      Description
  384.                                                      -----------
  385.                                                      Sub-total 1
  386.  
  387.                    01/06/99         000000500        Description
  388.                                                      Description-----------
  389.                                                      Sub-total 1
  390.                                                                 Sub-total 2
  391.      If Field 1 and Field 3 are in the same file, the lookup would be performed as follows.  (Note that Fields 2 and 4 can be in different files.)
  392.  
  393. 
  394.   File 1 GENERAL LEDGER          File 2  TRANSACTIONS 
  395.  
  396.   First lookup:  (account no, "1") +> transaction amount
  397.  
  398.   (Account No plus the Period match the key field of the Transactions File.)
  399.  
  400.       _________________________     _________________________  
  401.      |                         |   |                         | 
  402.      |                         |   |  Transaction            | 
  403.      |  AcctNo Period          |   |     Amount      Period  |
  404.      |                         |   |                         | 
  405.      |  1200000 01 -------------------+> Amount        01    |
  406.      |                         |   |     Amount        01    | 
  407.      |                         |   |     Amount        01    |
  408.      |                         |   |     Amount        01    |
  409.      |                         |   |                         |
  410.      |  1300000 01 -------------------+> Amount        01    |
  411.      |                         |   |     Amount        01    |
  412.      |                         |   |     Amount        01    |
  413.      |                         |   |                         |
  414.      |  1400000 01 -------------------+> Amount        01    |
  415.      |                         |   |     Amount        01    |
  416.  
  417.       . . .   
  418.        
  419.       Second lookup:  (account no, "2") +> transaction amount
  420.  
  421.      |                         |   |                         |
  422.      |  1200000 02 -------------------+> Amount        02    |
  423.      |                         |   |     Amount        02    | 
  424.      |                         |   |     Amount        02    |
  425.      |                         |   |                         | 
  426.      |  1300000 02 -------------------+> Amount        02    |
  427.      |                         |   |     Amount        02    |
  428.      |                         |   |     Amount        02    |
  429.      |                         |   |                         |
  430.      |  1400000 02 -------------------+> Amount        02    |
  431.      |                         |   |     Amount        02    |
  432.      |                         |   |     Amount        02    |
  433.      |                         |   |                         |
  434.      |_________________________|   |_________________________|
  435. 
  436.      The report for the preceding look-up specification would appear in the following format (if sub-totals and totals are also specified).
  437.  
  438. GL Acct No   Period      Amount
  439.  
  440.  1200000       1         Amount
  441.                          Amount
  442.                          Amount
  443.                          Amount
  444.                        Sub-total 1  (All period 1 amounts for 1200000)
  445.  
  446.                2         Amount
  447.                          Amount
  448.                          Amount 
  449.                        Sub-total 1 (All period 2 amounts for 1200000)
  450.  
  451.                                     Sub-total 2  (All amounts for 1200000)
  452.  
  453.  1300000       1         Amount
  454.                          Amount
  455.                          Amount
  456.                        Sub-total 1  (All period 1 amounts for 1300000)
  457.  
  458.                2         Amount
  459.                          Amount
  460.                        Sub-total 1  (All period 2 amounts for 1300000)
  461.  
  462.                                     Sub-total 2  (All amounts for 1300000)
  463. 
  464.  
  465. * Section *
  466. 18.3.5  Sub-Totalling with One-to-Many Lookups
  467.  
  468.      The field specified at the one-to-many look-up specification is automatically assigned a sub-total level.  (Note, however, that you do not indicate Y to Start of Level Break for that field.)  Be sure to consider this when specifying subtotals.
  469.  
  470. Following are example report design selections:
  471. 
  472.  
  473. Detail line:
  474.      Choose fields            Salesman Name
  475.        no level break set
  476.  
  477. Detail line:
  478.      Choose fields 
  479.        field from another file
  480.        (choose field)         Salesman No +> Commissions
  481.                               Document No
  482.        no level break set
  483.  
  484. Subtotal line 1:
  485.      Choose fields            commissions document no
  486.        calculated field       count, set on first subtotal level
  487.  
  488. 
  489.      The above specifications would give you a report in the following general format:
  490. 
  491.      Salesman Name       Doc-No 
  492.  
  493.      John Adams          04678
  494.                          05980
  495.                          09900     
  496.                                         3
  497.      Roger Smith         03579
  498.                          06900
  499.                                         2
  500. 
  501.      For more information on assigning sub-total levels, refer to Chapter 13 of this User's Guide.
  502.  
  503.      There are some special cases which relate to one-to-many look-ups which are outlined on the next page.
  504.  
  505. Example:  Field 1 +> Field 2, ... Field 2 +> Field 3
  506. 
  507.        
  508.        File 1                      File 2                    File 3
  509.  _____________________     ______________________     _____________________
  510. |                     |   |                      |   |                     |
  511. |  Field 1 ------------------+> field 2 ----------------+> field 3         |
  512. |                     |   |                      |   |  +> field 3         |
  513. |                     |   |                      |   |  +> field 3         |
  514. |                     |   |                      |   |                     |
  515. |                     |   |     field 2 ----------------+> field 3         |
  516. |                     |   |                      |   |  +> field 3         |
  517. |                     |   |                      |   |  +> field 3         |
  518. |                     |   |                      |   |                     |
  519. |                     |   |     field 2 ----------------+> field 3         |
  520. |                     |   |                      |   |  +> field 3         |
  521. |                     |   |                      |   |  +> field 3         |
  522. |                     |   |                      |   |                     |
  523. |  Field 1 ------------------+> field 2 ----------------+> field 3         |
  524. |                     |   |                      |   |  +> field 3         |
  525. |                     |   |                      |   |  +> field 3         |
  526. |                     |   |                      |   |                     |
  527. |                     |   |     field 2 ----------------+> field 3         |
  528. |                     |   |                      |   |  +> field 3         |
  529. |                     |   |                      |   |  +> field 3         |
  530. |_____________________|   |______________________|   |_____________________|
  531.  
  532. 
  533.      In the above example, Field 1 is the assigned first 
  534.      level break and Field 2 is the assigned second level break.
  535.  
  536.      If both specifications indicated above are given the same line numbers, the sub-totals will occur as follows:
  537.  
  538. 
  539. field 1        field 2         field 3              
  540.                                field 3              
  541.                                field 3              
  542.                            -----------